package com.eastfair.venueservice.service;

import com.eastfair.matching.dto.BindComplementServiceProviderRoleDTO;
import com.eastfair.matching.dto.RemoveComplementServiceProviderRoleDTO;
import com.eastfair.venueservice.entity.ServiceProvider;
import com.eastfair.venueservice.enumeration.ServiceProviderRoleEnum;

import java.util.List;

/**
 * 配套服务商服务.
 *
 * @author dqq
 * @date 2022 /7/29
 */
public interface VenueManageMatchingRegisterService {

    /**
     * 配套服务商绑定角色
     *
     * @param bindComplementServiceProviderRoleDTO the bind complement service provider role dto
     * @return the boolean
     */
    boolean bindComplementServiceProviderRole(BindComplementServiceProviderRoleDTO bindComplementServiceProviderRoleDTO);

    /**
     * 配套服务商绑定角色
     *
     * @param userId              the user id
     * @param serviceProviderId   the service provider id
     * @param serviceProviderName the service provider name
     * @param serviceProviderRole the service provider role
     * @return the boolean
     */
    boolean bindComplementServiceProviderRole(Long userId, Long serviceProviderId, String serviceProviderName, String serviceProviderRole);

    /**
     * 移除服务商通用角色.
     *
     * @param removeComplementServiceProviderRoleDTOList the bind complement service provider role dto
     * @return the boolean
     */
    boolean removeComplementServiceProviderRole(List<RemoveComplementServiceProviderRoleDTO> removeComplementServiceProviderRoleDTOList);

    /**
     * 移除角色.
     *
     * @param list                    the list
     * @param serviceProviderRoleEnum the service provider role enum
     * @return the boolean
     */
    boolean removeRole(List<ServiceProvider> list, ServiceProviderRoleEnum serviceProviderRoleEnum);
}